/*
 * IWantBuyModel.java
 * business
 *
 * Created by ChenTao on 2016/10/20.
 *
 * Copyright (c) 2016年 yidiandao. All rights reserved.
 */

package com.yidiandao.business.data.model;

import com.yidiandao.business.data.bean.Goods;
import com.yidiandao.business.ui.widget.listview.DisplayListItem;

import java.io.File;
import java.util.List;

/** 求购Model */
public interface IWantBuyModel {

    /** 加载我代理的所有商品列表 */
    void loadAgentGoodsList(
            boolean isRefreshing, String tag, OnAccessNetListener<List<Goods>> listener);

    /** 发送刷新选择商品图片列表的Event */
    void postRefreshChooseGoodsEvent();

    void postRefreshWantBuyDetailEvent();

    /**
     * 从已有的商品选择提供报价
     *
     * @param wid 报价（商品）id
     * @param goodsId 选择商品id
     * @param price 报价
     * @param phoneNumber 联系电话
     */
    void wantOfferFromAgent(
            String wid,
            String goodsId,
            String price,
            String phoneNumber,
            String tag,
            OnAccessNetListener listener);

    /**
     * 从本地相册选择图片上传
     *
     * @param wid 报价（商品）id
     * @param timestamp 时间戳
     * @param price 报价
     * @param phoneNumber 联系电话
     */
    void wantOfferFromLocal(
            String wid,
            long timestamp,
            String price,
            String phoneNumber,
            String tag,
            OnAccessNetListener listener);

    /**
     * 上传本地商品图片并报价
     *
     * @param wid 报价（商品）id
     * @param timestamp 时间戳
     * @param file 上传的图片文件
     */
    void uploadLoadImages(
            String wid, long timestamp, File file, String tag, OnAccessNetListener listener);

    /**
     * 压缩图片
     *
     * @param path 图片路径
     */
    File pressImage(String path);

    interface OnAccessNetListener<T> {

        void onSuccess(T t, boolean emptyResult, boolean hasMore);

        void onFailed();

        void onFinal();
    }

    interface OnLoadDetailListener {

        void onSuccess(List<DisplayListItem> displayListItems);

        void onFailed();

        void isMySelf(boolean isMyself);

        void onBanner(List<String> pictures);

        void onOffer(boolean isOffer);
    }
}
